package com.hifar.test.archive.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.hifar.plat.AopOption.Dict;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import com.hifar.plat.AopOption.Excel;


/**
* <p>
* 文件管理
* </p>
*
* @author wangkepeng
* @since 2024-12-09 15:10:00
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("HF_ENV_ARCHIVE")
@ApiModel(value = "HfEnvArchive对象", description = "文件管理")
public class HfEnvArchive implements Serializable{

    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private String viewPath;

    @TableField(exist = false)
    private String downloadPath;
    
    @TableField(exist = false)
    private String fullFilePath;

    /**
    * ID
    */
    @Excel(name="ID",sort=1)
    @ApiModelProperty(value = "ID")
    @TableId("ID")
    @JSONField(name = "id")
    private String id;


    /**
    * 显示类型 1 文件  2 图片  3 文件夹
    */
    @Excel(name="显示类型 1 文件  2 图片  3 文件夹",sort=1)
    @ApiModelProperty(value = "显示类型 1 文件  2 图片  3 文件夹")
    @TableField("ARCHIVE_VIEW_TYPE")
    @JSONField(name = "archiveViewType")
    private Integer archiveViewType;

    
    /**
     * 文件预览类型
     */
     @Excel(name="文件预览类型：oss表的viewType",sort=1)
     @ApiModelProperty(value = "文件预览类型：oss表的viewType")
     @TableField("VIEW_TYPE")
     @JSONField(name = "viewType")
     private String viewType;

    /**
    * 文件名称
    */
    @Excel(name="文件名称",sort=1)
    @ApiModelProperty(value = "文件名称")
    @TableField("FILE_NAME")
    @JSONField(name = "fileName")
    private String fileName;


    /**
    * 状态 1 上传未完成  9 上传完成  99 逻辑删除
    */
    @Excel(name="状态 1 上传未完成  9 上传完成  99 逻辑删除",sort=1)
    @ApiModelProperty(value = "状态 1 上传未完成  9 上传完成  99 逻辑删除")
    @TableField("STATUS")
    @JSONField(name = "status")
    private Integer status;


    /**
    * 查询标记
    */
    @Excel(name="查询标记",sort=1)
    @ApiModelProperty(value = "查询标记")
    @TableField("SEARCH_FLAG")
    @JSONField(name = "searchFlag")
    private Integer searchFlag;


    /**
    * 查询搜索路径
    */
    @Excel(name="查询搜索路径",sort=1)
    @ApiModelProperty(value = "查询搜索路径")
    @TableField("SEARCH_FLAG_PATH")
    @JSONField(name = "searchFlagPath")
    private String searchFlagPath;


    /**
    * 分片大小
    */
    @Excel(name="分片大小",sort=1)
    @ApiModelProperty(value = "分片大小")
    @TableField("PART_SIZE")
    @JSONField(name = "partSize")
    private Integer partSize;


    /**
     * 统计的excel文件（1是0否）
     */
     @Excel(name="统计一级目录的excel",sort=1)
     @ApiModelProperty(value = "统计一级目录的excel")
     @TableField("STATISIC_EXCEL")
     @JSONField(name = "statisticExcel")
     private Integer statisticExcel;
    
    
    
    
    
    /**
    * 更新用户名称
    */
    @Excel(name="更新用户名称",sort=1)
    @ApiModelProperty(value = "更新用户名称")
    @TableField(value = "UPDATE_USER_NAME", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateUserName")
    private String updateUserName;


    /**
    * 文件路径
    */
    @Excel(name="文件路径",sort=1)
    @ApiModelProperty(value = "文件路径")
    @TableField("FILE_PATH")
    @JSONField(name = "filePath")
    private String filePath;


    /**
    * 租户ID
    */
    @Excel(name="租户ID",sort=1)
    @ApiModelProperty(value = "租户ID")
    @TableField(value = "TENANT_ID", fill = FieldFill.INSERT)
    @JSONField(name = "tenantId")
    private String tenantId;


    /**
    * MD5值
    */
    @Excel(name="MD5值",sort=1)
    @ApiModelProperty(value = "MD5值")
    @TableField("FILE_MD5")
    @JSONField(name = "fileMd5")
    private String fileMd5;


   


    /**
    * 父id,最顶层的pid是0
    */
    @Excel(name="父id,最顶层的pid是0",sort=1)
    @ApiModelProperty(value = "父id,最顶层的pid是0")
    @TableField("PID")
    @JSONField(name = "pid")
    private String pid;

    
    
    

    /**
    * fileId,
    */
    @Excel(name="fileId",sort=1)
    @ApiModelProperty(value = "fileId")
    @TableField("file_id")
    @JSONField(name = "fileId")
    private String fileId;
    
    
    
    
    

    /**
    * 密级
    */
    @Excel(name = "密级", sort = 1)
    @Dict(dictCode = "hf_sys_datasecret")
    @ApiModelProperty(value = "密级")
    @TableField("SECRET_LEVEL")
    @JSONField(name = "secretLevel")
    private Integer secretLevel;


    /**
    * bucket前缀
    */
    @Excel(name="bucket前缀",sort=1)
    @ApiModelProperty(value = "bucket前缀")
    @TableField("BUCKET_PRE")
    @JSONField(name = "bucketPre")
    private String bucketPre;


    /**
    * 创建时间
    */
    @Excel(name="创建时间",sort=1)
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    @JSONField(name = "createTime")
    private Date createTime;


    /**
    * 部门管理
    */
    @Excel(name="部门管理",sort=1)
    @ApiModelProperty(value = "部门管理")
    @TableField("DEPT_ID")
    @JSONField(name = "deptId")
    private String deptId;


    /**
    * 排序
    */
    @Excel(name="排序",sort=1)
    @ApiModelProperty(value = "排序")
    @TableField("ROW_SORT")
    @JSONField(name = "rowSort")
    private Integer rowSort;


    /**
    * 排序
    */
    @Excel(name="层级数字",sort=1)
    @ApiModelProperty(value = "层级数字")
    @TableField("LEVEL_NUM")
    @JSONField(name = "levelNum")
    private Integer levelNum;
    
    /**
    * 分片数量
    */
    @Excel(name="分片数量",sort=1)
    @ApiModelProperty(value = "分片数量")
    @TableField("CHUNK_COUNT")
    @JSONField(name = "chunkCount")
    private Integer chunkCount;


    /**
    * 备注
    */
    @Excel(name="备注",sort=1)
    @ApiModelProperty(value = "备注")
    @TableField("REMARKS")
    @JSONField(name = "remarks")
    private String remarks;


    /**
    * 数据位置
    */
    @Excel(name="数据位置",sort=1)
    @ApiModelProperty(value = "数据位置")
    @TableField("BUCKET_NAME")
    @JSONField(name = "bucketName")
    private String bucketName;


    /**
    * 更新用户ID
    */
    @Excel(name="更新用户ID",sort=1)
    @ApiModelProperty(value = "更新用户ID")
    @TableField(value = "UPDATE_USER_ID", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateUserId")
    private String updateUserId;


    /**
    * 创建用户ID
    */
    @Excel(name="创建用户ID",sort=1)
    @ApiModelProperty(value = "创建用户ID")
    @TableField(value = "CREATE_USER_ID", fill = FieldFill.INSERT)
    @JSONField(name = "createUserId")
    private String createUserId;


    /**
    * 0未删除1已删除
    */
    @Excel(name="0未删除1已删除",sort=1)
    @ApiModelProperty(value = "0未删除1已删除")
    @TableLogic
    @JSONField(name = "delFlag")
    private Integer delFlag;


    /**
    * 文件类型：1 文件夹  2 文件
    */
    @Excel(name="文件类型：1 文件夹  2 文件",sort=1)
    @ApiModelProperty(value = "文件类型：1 文件夹  2 文件")
    @TableField("FILE_TYPE")
    @JSONField(name = "fileType")
    private Integer fileType;


    /**
    * 更新时间
    */
    @Excel(name="更新时间",sort=1)
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "UPDATE_TIME", fill = FieldFill.INSERT_UPDATE)
    @JSONField(name = "updateTime")
    private Date updateTime;


    /**
    * 文件大小
    */
    @Excel(name="文件大小",sort=1)
    @ApiModelProperty(value = "文件大小")
    @TableField("FILE_SIZE")
    @JSONField(name = "fileSize")
    private Double fileSize;


    /**
    * 创建用户名称
    */
    @Excel(name="创建用户名称",sort=1)
    @ApiModelProperty(value = "创建用户名称")
    @TableField(value = "CREATE_USER_NAME", fill = FieldFill.INSERT)
    @JSONField(name = "createUserName")
    private String createUserName;

}